1. Field of the Invention
The present invention relates to methods and systems of device level digital program insertion.
2. Background Art
FIG. 1 illustrates a Digital Program Insertion (DPI) system 10 described in OpenCable Application Platform (OCAP) Specification v1.1, Cable Television Laboratories, Inc., the disclosure of which is hereby incorporated in its entirety. This specification has enabled cable, broadcast, and satellite television operators and other content providers to support local ad insertion at a device level so that addressable commercials or other content can be inserted locally at customer premise equipment (CPE). The system 10 may include a host device, such as but not limited to a settop box, computer or other device, configured to process one or more content feeds for output to a display.
The host device may include a targeting engine and a switch engine operating on an OCAP platform to facilitate inserting commercials or other media within the outputted content. The targeting engine may be an application configured to select the inserted commercials according to targeting instructions (command and control signals) received from an advertisement controller. The switch engine may be an implementation element configured to implement the processes necessary to physically insert the commercials. This may include the targeting engine specifying the commercials to insert and the switch engine inserting the specified commercials at determined insertion opportunities.
The host device may receive any number of content feeds for processing and output to the display. The ability to insert commercials at the device level allows commercials to be targeted to particular content feeds and individual subscribers. The host device may include a central processing unit (not shown) or other processing element to facilitate processing messages and executing operations required to support outputting the content and inserting the commercials. For each insertion opportunity in each of the content feeds, the advertisement controller may transmit a separate set of insertion instructions to the targeting engine for use in specifying the inserted commercial.
The targeting engine may process each set of insertion instructions and issue an application program interface (API) call or other command to the switch engine to instruct the switch engine to insert a particular advertisement. For each insertion opportunity, the targeting application may transmit the API call to the switch engine to specify insertion of a particular one of the commercials when the insertion advertisement arises. This process may be repeated for each insertion opportunity. For example, if commercials A-D are available, the targeting engine may initiate an API call for a first insertion opportunity to instruct the switch engine to insert commercial B and for a second, subsequent insertion opportunity, the targeting engine may initiate another API call to instruct the switch engine to insert commercial A.
FIG. 2 illustrates a timeline 20 associated with inserting commercials on a single content feed according to the system described in FIG. 1. Prior to each insertion opportunity, separate sets of insertion instructions must be transmitted to the targeting engine for each supported content feed. A first set of insertion instructions 22 must be processed and a corresponding API call 24 must be generated by the targeting engine prior to a first insertion opportunity 26 if the switch engine is to be instructed to insert the appropriate commercial 28 when the corresponding insertion opportunity arises. If a second commercial opportunity 34 is to arise shortly thereafter, additional instructions 36 must be provided to the targeting engine to generate another API call 38 to facilitate the additional commercial insertion 40. As shown with the overlapping lines, this may require the targeting application to simultaneously support multiple operations.
The number of instructions that must be processed by the engines and the number of messages/calls that must be generated and transmitted increases as the number of commercial opportunities increases. While FIG. 2 only illustrates the instructions for a single content feed, a similar extrapolation arises for multiple content feeds since each content feed must be supported in a similar manner, i.e., each content feed may similarly require the engines to process multiple sets of instructions and to issue/generate multiple API calls for each insertion opportunity.
The need to support multiple insertion operations can lead to a race condition if the host device is unable to properly process each set of insertion instructions by the corresponding insertion opportunity. Each unprocessed set of commercial instructions prevents the host device from inserting the proper commercial for a particular advertisement opportunity, which can result in the loss of advertisement revenue if the content provider is unable to charge advertisers for missed commercials.